import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
import vueJsx from '@vitejs/plugin-vue-jsx'
import svgLoader from 'vite-svg-loader'

// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
  // 获取当前环境的配置
  const config = loadEnv(mode, './')
  console.log('环境变量:', config)
  return {
    plugins: [
      vue(),
      vueJsx(),
      svgLoader({
        svgoConfig: { defaultImport: 'url' }
      })
    ],
    base: config.VITE_APP_BASE_ASSETS,
    build: {
      outDir: `dist/${config.VITE_APP_BASE_ASSETS}`
    },
    resolve: {
      alias: [
        {
          find: '@',
          replacement: resolve(__dirname, './src')
        },
        {
          find: 'assets',
          replacement: resolve(__dirname, './src/assets')
        }
      ],
      extensions: ['.ts', '.js', '.vue']
    },
    server: {
      port: 8010, // 指定服务器端口;
      host: '0.0.0.0',
      cors: false, // 在服务器启动时自动在浏览器中打开应用程序；
      open: true, // 为开发服务器配置 CORS。默认启用并允许任何源；
      headers: {
        'Access-Control-Allow-Credentials': true,
        'Access-Control-Allow-Origin': '*', // 如资源没有携带 cookie,需设置此属性
        'Access-Control-Allow-Headers': 'X-Requested-With,Content-Type',
        'Access-Control-Allow-Methods': '*'
      },
      proxy: {
        '/login': {
          target: 'http://192.168.0.117:9200/', // 登录接口
          changeOrigin: true
        },
        '/health-mgr-back/v1.0': {
          target: 'http://192.168.0.117:8099/', // 故障演化-趋势相关-普通接口
          changeOrigin: true
        },
        '/websocket-health': {
          target: 'http://192.168.0.117:8099/', // 故障演化-websocket
          changeOrigin: true,
          ws: true
        },
        '/fault': {
          target: 'http://192.168.0.117:9212/', // 故障演化-故障模型管理
          changeOrigin: true
        },
        '/api/v1.0': {
          target: 'http://192.168.0.117:8096/', // 健康评估-单星健康态势/评估体系构建
          changeOrigin: true
        }
      }
    },
    define: {
      global: 'window'
    }
  }
})
